package com.itzmn.newcode.offer1;

import java.util.Stack;

/**
 * @Author: 张梦楠
 * @Date: 2018/12/18 14:51
 * 简书：https://www.jianshu.com/u/d611be10d1a6
 * 码云：https://gitee.com/zhangqiye
 * @Description: 两个栈做队列
 *
 *  用两个栈来实现一个队列，完成队列的Push和Pop操作。 队列中的元素为int类型
 *
 *  队列是先入先出
 *  栈是先入后出，
 *  按序添加，移出需要逆序，弹出最先进入的
 *
 */
public class _5_TwoStackDoQueue {

    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();

    public static void main(String[] args) {

        new _5_TwoStackDoQueue().test();
    }

    public void test(){


    }

    public void push(int node) {
        stack1.push(node);
    }

    public int pop() {

        while (!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
        Integer pop = stack2.pop();
        while (!stack2.isEmpty()){
            stack1.push(stack2.pop());
        }
        return pop;

    }
}
